package com.yangchao.quarkus.config;

import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;
import io.smallrye.config.WithName;

@ConfigMapping(prefix = "student")
public interface StudentConfiguration {
    /**
     * 名字与配置项一致
     * @return
     */
    String name();

    /**
     * 名字与配置项一致，自动转为int型
     * @return
     */
    int age();

    /**
     * 名字与配置项不一致时，用WithName注解指定配置项
     * @return
     */
    @WithName("description")
    String desc();

    /**
     * 用WithDefault注解设置默认值，如果配置项"student.favorite"不存在，则默认值生效
     * @return
     */
    @WithDefault("default from code")
    String favorite();

    @WithName("address")
    Address  address();
}